var mongoose = require('mongoose');
var db = require('../config/db');
var Schema = mongoose.Schema;

//用户表
var UserSchema = new Schema({
  name:{type:String},    //用户名
  psw:{type:String},    //密码
  email:{type:String},    //邮箱
  sex:{type:String,default:'asexual'},    //性别
  birth:{type:Date},    //生日
  phone:{type:Number},    //电话
  explain:{type:String},    //介绍
  imgurl:{type:String, default:'/user/user.png'},    //头像链接
  time:{type:Date},    //注册时间
});

//好友表
var FriendSchema = new Schema({
  userID:{type:Schema.Types.ObjectId,ref:'User'},    //用户id
  friendID:{type:Schema.Types.ObjectId,ref:'User'},    //好友id
  state:{type:String},    //通过状态（0：好友，1：申请中，2：申请发送方，还未同意）
  markname:{type:String},     //好友昵称（备注）
  time:{type:Date},    //生成时间
  lasttime:{type:Date},    //最后的消息时间
});

//一对一消息表
var MessageSchema = new Schema({
  userID:{type:Schema.Types.ObjectId,ref:'User'},    //用户id
  friendID:{type:Schema.Types.ObjectId,ref:'User'},    //好友id
  message:{type:String},    //发送内容
  types:{type:String},      //内容类型（0：文字，1：图片，2：语音）
  time:{type:Date},    //发送时间
  state:{type:Number},    //消息状态(0：已读，1：未读)
});

//群表
var GroupSchema = new Schema({
  userID:{type:Schema.Types.ObjectId,ref:'User'},    //群主
  name:{type:String},    //群名称
  imgurl:{type:String, default:'group.png'},    //群头像
  time:{type:Date},    //创建时间
  notice:{type:String},    //群公告
});

//群成员表
var GroupUserSchema = new Schema({
  groupID:{type:Schema.Types.ObjectId,ref:'Group'},    //群id
  userID:{type:Schema.Types.ObjectId,ref:'User'},    //用户id
  name:{type:String},    //群内名称
  tip:{type:Number, default:0},    //未读消息数
  time:{type:Date},    //加入时间
  lasttime:{type:Date},    //最后通信时间
  shield:{type:Number},    //是否屏蔽（0：不屏蔽，1：屏蔽）
});

//群消息表
var GroupMsgSchema = new Schema({
  groupID:{type:Schema.Types.ObjectId,ref:'Group'},    //群id
  userID:{type:Schema.Types.ObjectId,ref:'User'},    //用户id
  message:{type:String},    //发送内容
  types:{type:String},      //内容类型（0：文字，1：图片，2：语音）
  time:{type:Date},    //发送时间
});

//这个模型定义的是数据库yike的users集合数据，
// 所以这个model取名User是对应这个集合，连接数据库之后，
// 这个模型会根据名字的复数形式"users"来查找数据集合。
// module.exports = mongoose.model('User',produtSchema,'users'); 也可以后面注明链接的是数据库的users集合
module.exports = db.model('User',UserSchema);
module.exports = db.model('Friend',FriendSchema);
module.exports = db.model('Message',MessageSchema);
module.exports = db.model('Group',GroupSchema);
module.exports = db.model('GroupUser',GroupUserSchema);
module.exports = db.model('GroupMsg',GroupMsgSchema);

